function setup_grid()
{
    var offsW = 19;
    var offsH = 85;

    var w = $('#content').innerWidth() - offsW;
    var h = $('#content').innerHeight() - offsH;

    $('#list').setGridHeight(h);
    $('#list').setGridWidth(w, true);
}

var no_setup_row = false;

function first_row_sel(data)
{
    
    if(!no_setup_row)
    {
        var row = $('#list tr:nth-child(2)').attr('id');

        $("#list").jqGrid().setSelection(row, true);
        no_setup_row = true;
    }
}

$(function()
{
  $("#list").jqGrid({
    url:'req/eve_list.php',
    datatype: 'json',
    mtype: 'GET',
    colNames:['Название'],
    colModel :[ 
      {name:'name',sortable: false, index:'name'}
    ],
    loadComplete: first_row_sel,
    sortname: 'name'
  });

  $("#act-grid").jqGrid({
    url:"req/det_list.php",
    editurl:'clientArray',
    cellsubmit: 'clientArray',
    datatype: 'json',
    width: 400,
    colNames:['','№ контр.','Расположение СО', 'Программа'],
    colModel :[ 
      {name: 'myac', width:55, fixed:true, sortable:false, resize:false, formatter:'actions', formatoptions:{keys:true}},
      {name:'c_id',sortable: false, width: 50, fixed: true, editable: true, edittype: "select" }, 
      {name:'location',sortable: false }, 
      {name:'prog',sortable: false, editable: true, width: 90,fixed:true, edittype:"select",editoptions:{value:"1:1;2:2;3:3;4:4;5:5;6:6;7:7;8:8;9:ЖМ;10:ОС"} } 
    ],
    sortname: 'c_id'
  });


function setupData(_elem)
{
    $(_elem).change(function () 
    {
        $.getJSON('req/con_opt.php', function (_data)
                {
                    var sel = $(_elem).find('option:selected').val();

                    $(_data).each(function(_idx, _elm)
                                {
                                    if (_elm.id == sel)
                                    {
                                        $(_elem).parent().next('[aria-describedby=act-grid_location]').html(_elm.location);

                                        return false;
                                    }

                                    return true;
                                });
                }
        );
    });
}

$( "#edit-button" )
            .button()
            .click(function() {

                var gr = $("#list").jqGrid('getGridParam','selrow');

                if( gr != null ) 
                {
                    $('input[name=cid]').val(gr);

                    $("#act-grid").jqGrid('setGridParam',
                                                    {
                                                        url:"req/det_list.php?eve="+gr,
                                                        page:1
                                                    }); 

                    jQuery("#act-grid").jqGrid().trigger('reloadGrid');  

                    var cdata = $.ajax({url: "req/con_opt.php?type=str", async:false,
                            success: function(_data,_result){} }).responseText;

                    $("#act-grid").jqGrid().setColProp('c_id',{ editoptions:{ value: cdata, dataInit: setupData }});

                    var data = $("#list").jqGrid().getRowData(gr);

                    $('input[name=name]').val(data.name);

                    $("#event-form").dialog("open");

                }
                else 
                {
                    alert("Выберите строку для редактирования !"); 
                }
            });



$( "#add-button" )
            .button()
            .click(function() 
            {

                $("#act-grid").jqGrid().clearGridData();                

                var cdata = $.ajax({url: "req/con_opt.php?type=str", async:false,
                            success: function(_data,_result){} }).responseText;

                $("#act-grid").jqGrid().setColProp('c_id',{ editoptions:{ value: cdata, dataInit: setupData } });

                $('input[name=cid]').val(0);
                $('input[name=name]').val('');

                $("#event-form").dialog("open");

            });


$("#remove-button")
            .button()
            .click(function() { 

                var gr = $("#list").jqGrid('getGridParam','selrow'); 
                if( gr != null ) 
                {
                  var data = $("#list").jqGrid().getRowData(gr);

                  if (confirm("Удалить сценарий : "+data.name))
                  {
                    $.post("req/det_edit.php", {oper:"del", eid:gr},
                          function(_data)
                                  {
                                    $("#list").jqGrid().trigger("reloadGrid");
                                  }
                              );
                  }
                }
                else 
                {
                    alert("Выбирите строку для удаления !"); 
                }



            });

$("#event-form").dialog(
    {
        autoOpen: false,
        height: 'auto',
        width: 'auto',
        modal: true,
        resizable: false,
        dialogClass: 'event-dialog',

        buttons: {

            "Добавить строку": function ()
            {
                 var cnt = $("#act-grid").jqGrid('getGridParam','records')   

                 var eid = $('input[name=cid]').val();

                 $("#act-grid").jqGrid().addRowData(eid+'-'+(cnt+1),{c_id:'0', location:'', prog:'ЖМ'});
            },

            "Сохранить": function ()
            {
                var script_name = $('input[name=name]').val();
                var script_is_edit = $("#act-grid tr[editable=1]").size();
                var script_data = $("#act-grid").jqGrid().getRowData();

                if (script_name == "")
                {
                    alert("Нет названия сценария !");
                    return;
                }

                if ( script_is_edit > 0)
                {
                    alert("Надо завершить редактирование строк(и) !");
                    return
                }

                if (script_data.length == 0)
                {
                    alert("В скрипте нет действий !");
                    return;
                }

                $.ajax({
                        type:"POST",
                        url:"req/det_edit.php",
                        async: false,
                        data: {
                            oper: 'store',
                            grid: JSON.stringify(script_data),
                            eid: $('input[name=cid]').val(),
                            name: script_name
                        },
                        success: function (response, textStatus, xhr)
                        {
                            jQuery("#list").jqGrid().trigger('reloadGrid');  
                        }
                    });

                $(this).dialog("close");

            },

            "Отменить": function ()
            {
                $(this).dialog("close");
            }
        }
    });

  setup_grid();

  $(window).resize(setup_grid);

});

